stack: Fix node position during crossfade
authorTimm Bäder <mail@baedert.org>
Sun, 29 Jan 2017 16:55:00 +0000 (17:55 +0100)
committerTimm Bäder <mail@baedert.org>
Mon, 30 Jan 2017 17:11:15 +0000 (18:11 +0100)
gtk/gtkstack.c

index 083c19990e8577eeb5be9d0b870b6cc126204572..b1617297c495e91691ed4a86042bdb04363316ff 100644 (file)
@@ -1919,11 +1919,16 @@ gtk_stack_snapshot_crossfade (GtkWidget   *widget,
 
   if (priv->last_visible_node)
     {
-      graphene_matrix_t identity;
+      graphene_matrix_t translate;
 
-      graphene_matrix_init_identity (&identity);
+      graphene_matrix_init_translate (&translate,
+                                      &GRAPHENE_POINT3D_INIT (
+                                        priv->last_visible_surface_allocation.x,
+                                        priv->last_visible_surface_allocation.y,
+                                        0)
+                                      );
 
-      gtk_snapshot_push_transform (snapshot, &identity, "CrossFadeStart");
+      gtk_snapshot_push_transform (snapshot, &translate, "CrossFadeStart");
       gtk_snapshot_append_node (snapshot, priv->last_visible_node);
       gtk_snapshot_pop (snapshot);
     }